Skip to main content

The following is a collection of openly available university courses. Each course includes resources such as syllabus, schedules, lecture materials, projects, and homework assignments so you can follow along and study in a structured way.

EEC 281 — VLSI Digital Signal Processing
Winter 2025UC DavisInstructors: Bevan Baas

Visit course website

Description

Digital signal processors, building blocks, and algorithms. Design and implementation of processor algorithms, architectures, control, functional units, and circuit topologies for increased performance and reduced circuit size and power dissipation. Goals: Through this course, students will develop the necessary skills to design simple synthesizable processors suitable for numerically intensive processing with an emphasis on small chip area and high-performance. Secondly, students will learn to design processors for simple digital signal processing tasks through the simultaneous design of DSP algorithms, processor architectures, and hardware design.

EEC 281 — VLSI Digital Signal Processing course header
CS 123: A Hands-On Introduction to Building AI-Enabled Robots
2023Stanford UniversityInstructors: Prof. Karen Liu (Stanford CS), Jie Tan (Google DeepMind), Stuart Bowers (Hands-On Robotics)

Visit course website

Description

This course offers a hands-on introduction to AI-powered robotics. Unlike most introductory robotics courses, students will learn essential robotics concepts by constructing a quadruped robot from scratch and training it to perform real-world tasks such as navigation and command following. The course covers a broad range of topics critical to robot learning, including motor control, forward and inverse kinematics, system identification, simulation, and reinforcement learning. Through weekly labs, students will construct and program an agile robot quadruped named Pupper. In the final few weeks, students will undertake an open-ended project, such as training Pupper to perform agile movements, developing a vision system to allow Pupper to play fetch, or adapting large language models to enable Pupper’s ability to communicate with humans. Researchers from Google DeepMind, Hands-On Robotics, and Toyota Research Institute will give lectures during the quarter on their work teaching robots new skills using reinforcement learning.

CS 123: A Hands-On Introduction to Building AI-Enabled Robots course header
6.205/[6.111] Digital Systems Laboratory I
Fall 2025MITInstructors: Joe Steinmeyer

Visit course website

Description

6.205/[6.111] investigates digital design in the context of Field Programmable Gate Arrays (FPGAs), however many of the topics we go over are applicable to the field of digital design as a whole. The class uses the Verilog Hardware Description Language, iVerilog for simulations, and the Vivado/Xilinx/AMD ecosystem for a toolchain and hardware. The primary goal is to actually get in and build something and get it working and to see the good and the bad and the beautiful of hardware design. The first half of the class is devoted to lectures, problem sets, and labs. The latter half of the class is focused on large final projects. There are no exams. The class has a significant technical communication component and therefore counts as a CI-M.

Notes

The page is constantly updating to the latest quarter. Change url for historical quarters.
6.205/[6.111] Digital Systems Laboratory I course header
6.111 Digital Systems Laboratory I
Spring 2006MITInstructors: Prof. Anantha Chandrakasan

Visit course website

Description

6.111 is reputed to be one of the most demanding classes at MIT, exhausting many students’ time and creativity. The course covers digital design topics such as digital logic, sequential building blocks, finite-state machines, FPGAs, timing and synchronization. The semester begins with lectures and problem sets, to introduce fundamental topics before students embark on lab assignments and ultimately, a digital design project. The students design and implement a final digital project of their choice, in areas such as games, music, digital filters, wireless communications, video, and graphics. The course relies on extensive use of Verilog® for describing and implementing digital logic designs on state-of-the-art FPGA.

6.111 Digital Systems Laboratory I course header
CS 168 Introduction to the Internet
Summer 2025UC BerkeleyInstructors: Peyrin Kao, Tess Despres

Visit course website

Description

This course is an introduction to the Internet architecture. We will focus on the concepts and fundamental design principles that have contributed to the Internet's scalability and robustness and survey the various protocols and algorithms used within this architecture. Topics include layering, addressing, intradomain routing, interdomain routing, reliable delivery, congestion control, and the core protocols (e.g., TCP, UDP, IP, DNS, and HTTP) and network technologies (e.g., Ethernet, wireless).

CS 168 Introduction to the Internet course header
CS 149 Parallel Computing
Fall 2023StanfordInstructors: Kayvon Fatahalian and Kunle Olukotun

Visit course website

Description

From smart phones, to multi-core CPUs and GPUs, to the world's largest supercomputers and web sites, parallel processing is ubiquitous in modern computing. The goal of this course is to provide a deep understanding of the fundamental principles and engineering trade-offs involved in designing modern parallel computing systems as well as to teach parallel programming techniques necessary to effectively utilize these machines. Because writing good parallel programs requires an understanding of key machine performance characteristics, this course will cover both parallel hardware and software design.

Notes

Lecture Playlist on Youtube Link

Helpful Learning Resources

Cornell Virtual Workshop
Cornell

Visit course website

Description

The Cornell University Center for Advanced Computing (CAC) is a leader in the development and deployment of Web-based training programs. Our Cornell Virtual WorkshopSM learning platform is designed to enhance the computational science skills of researchers, accelerate the adoption of new and emerging technologies, and broaden the participation of underrepresented groups in science and engineering. Over 350,000 unique visitors have accessed Cornell Virtual Workshop training on programming languages, parallel computing, code improvement, and data analysis. The platform supports learning communities around the world, with code examples from national systems such as Frontera, Stampede2, and Jetstream2.

Cornell Virtual Workshop course header
Nvidia GPU Gems 3
Nvidia

Visit course website

Description

Composition, the organization of elemental operations into a nonobvious whole, is the essence of imperative programming...

Nvidia GPU Gems 3 course header